What is App::ffeedflotr
?
How is App::ffeedflotr
useful?
How does App::ffeedflotr
work?
What does App::ffeedflotr
need?
Max Maischein
Frankfurt.pm
DZ BANK Frankfurt
Deutsche Zentralgenossenschaftsbank
Information management
App::ffeedflotr
is a command line program
that reads data from STDIN
and visualizes it in Firefox.
App::ffeedflotr
?... if that image is readily available!
... for the data you have!
App::ffeedflotr
?Numbers and totals available online
Debug output of programs
Online example:
Statistics of CPAN Tester reports
Online as text file (http://stats.cpantesters.org/mreports.html)
Online example:
Statistics of CPAN Tester reports
Online as text file (http://stats.cpantesters.org/mreports.html)
1: YYYYMM,testers,total,pass,fail 2: 3: 199508,31,0,0,0 4: 199509,15,0,0,0 5: 201101,2008,333157,289881,27773 6: 201102,2009,409904,351975,31752 7: 201103,1908,387248,338211,27300
1: perl -aF=, -nle "splice@F,2,2;print qq(@F)" 2: | perl -w bin\ffeedflotr.pl 3: --time 4: --xlen 20 5: --color 1=green --color 2=red 6: --legend 1=Pass --legend 2=Fail 7: stats1.txt
ffeedflotr
reads STDIN
and writes to Firefox
ffeedflotr
reads STDIN
and writes to Firefox
1: > perl -w bin\ffeedflotr.pl --title test 2: 1 1 3: 2 4 4: 3 9 5: 4 16 6: ^D
Also infinite data streams
1: > perl -wle "$|++;while(1){print( $i++,' ',rand(10));sleep 1}"
Also infinite data streams
1: > perl -wle "$|++;while(1){print( $i++,' ',rand(10));sleep 1}" 2: 0 7.31170654296875
Also infinite data streams
1: > perl -wle "$|++;while(1){print( $i++,' ',rand(10));sleep 1}" 2: 0 7.31170654296875 3: 1 1.4410400390625
Also infinite data streams
1: > perl -wle "$|++;while(1){print( $i++,' ',rand(10));sleep 1}" 2: 0 7.31170654296875 3: 1 1.4410400390625 4: 2 1.35223388671875
Also infinite data streams
1: > perl -wle "$|++;while(1){print( $i++,' ',rand(10));sleep 1}" 2: 0 7.31170654296875 3: 1 1.4410400390625 4: 2 1.35223388671875 5: 6: > perl -wle "$|++;while(1){print( $i++,' ',rand(10));sleep 1}" 7: | perl -w bin\ffeedflotr.pl 8: --stream 9: --title test
1: perl -wle "$|++;while(1){print( $i++,' ',rand(10));sleep 1}" 2: | perl -w bin\ffeedflotr.pl 3: --stream 4: --title test
Live Demo!
Line chart
Stacked line chart / Area chart
Pie chart
Scatterplot ( X / Y Chart )
Procedural Map Generation
Procedural Map Generation
Random dots
Radius of 10 units around every dot
Random::PoissonDisc
Procedural Map Generation
Random dots
Radius of 10 units around every dot
Random::PoissonDisc
Output:
1: > perl -w rdp-test.pl 2: 3: 24.4129655649886 24.416205030866 4: 28.538216147295 36.9806667873347 5: 36.3469658463998 31.3267757436954 6: ...
Radius of 10 units around every dot?
Output:
1: > perl -w rdp-test.pl 2: 3: 24.4129655649886 24.416205030866 4: 28.538216147295 36.9806667873347 5: 36.3469658463998 31.3267757436954 6: ...
Radius of 10 units around every dot?
Output:
1: > perl -w rdp-test.pl 2: 3: 24.4129655649886 24.416205030866 4: 28.538216147295 36.9806667873347 5: 36.3469658463998 31.3267757436954 6: ... 7: 8: > perl -w rdp-test.pl | perl -w bin\ffeedflotr.pl 9: --type=scatter
Radius of 10 units around every dot?
Output:
1: > perl -w rdp-test.pl | perl -w bin\ffeedflotr.pl 2: --type=scatter
Debug it
Good
1: > perl -w rdp-test.pl | perl -w bin\ffeedflotr.pl 2: --type=scatter
Bad
1: > perl -w rdp-test.pl | perl -w bin\ffeedflotr.pl 2: --type=scatter
Good
1: > perl -w rdp-test.pl | perl -w bin\ffeedflotr.pl 2: --type=scatter
App::ffeedflotr
work?App::ffeedflotr
work?Portrait of Buffalo Bob Smith and Howdy Doody: Fort Lauderdale, Florida
Flickr++
App::ffeedflotr
work?Portrait of Buffalo Bob Smith and Howdy Doody: Fort Lauderdale, Florida
App::ffeedflotr
work?Portrait of Buffalo Bob Smith and Howdy Doody: Fort Lauderdale, Florida
App::ffeedflotr
work?Portrait of Buffalo Bob Smith and Howdy Doody: Fort Lauderdale, Florida
App::ffeedflotr
work?Create Firefox tab (WWW::Mechanize::Firefox)
Load flot.js
into tab
Read input data
Transmit data to Firefox
App::ffeedflotr
work?Create Firefox tab (WWW::Mechanize::Firefox)
Load flot.js
into tab
Read input data
Transmit data to Firefox
App::ffeedflotr
work?Create Firefox tab (WWW::Mechanize::Firefox)
Load flot.js
into tab
Read input data
Transmit data to Firefox
Plot data with calls to flot.js
A better name!
A module API!
More use cases than just mine
Plot algorithm for IP addresses (Koch dragon curve / XKCD?)
http://github.com/Corion/App-ffeedflotr
The sample code is available in the Github repo
If I get a good name for the module/app, the code will also be released onto CPAN
App::ffeedflotr
http://github.com/Corion/App-ffeedflotr
The sample code is available in the Github repo
If I get a good name for the module/app, the code will also be released onto CPAN
App::ffeedflotr
Max Maischein ( corion@cpan.org
)
Time series
Legends
Line Colors
Axis values
Background image
Graphviz
- for non-metric data
GD
- for raw plotting